## pval_cutoff: 0.05
## lfc_cutoff: 0.58
## low_counts_cutoff: 10

General statistics

# Number of samples
length(counts_data)
## [1] 6
# Number of genes
nrow(counts_data)
## [1] 43432
# Total counts
colSums(counts_data)
## SRR13535276 SRR13535278 SRR13535280 SRR13535300 SRR13535304 SRR13535302 
##     2902259     2219026     3493884     2399370     1781062     1516859

Create DDS objects

# Create DESeqDataSet object
dds <- get_DESeqDataSet_obj(counts_data, ~ experimental_class_type)
## [1] TRUE
## [1] TRUE
## [1] "DESeqDataSet object of length 43432 with 0 metadata columns"
## [1] "DESeqDataSet object of length 13740 with 0 metadata columns"
colData(dds)
## DataFrame with 6 rows and 3 columns
##             experimental_class_type                   regime         treatment
##                            <factor>                 <factor>       <character>
## SRR13535276                       A in space without gravity without nanoceria
## SRR13535278                       A in space without gravity without nanoceria
## SRR13535280                       A in space without gravity without nanoceria
## SRR13535300                       E                  on land without nanoceria
## SRR13535304                       E                  on land without nanoceria
## SRR13535302                       E                  on land without nanoceria

Sample-to-sample comparisons

# Transform data (blinded rlog)
rld <- get_transformed_data(dds)

PCA plot

pca <- rld$pca
pca_df <- cbind(as.data.frame(colData(dds)) %>% rownames_to_column(var = 'name'), pca$x)
summary(pca)
## Importance of components:
##                            PC1     PC2     PC3      PC4      PC5       PC6
## Standard deviation     39.1457 33.8596 24.6795 18.31501 16.63224 4.926e-14
## Proportion of Variance  0.3929  0.2940  0.1562  0.08601  0.07093 0.000e+00
## Cumulative Proportion   0.3929  0.6869  0.8431  0.92907  1.00000 1.000e+00
ggplot(pca_df, aes(x = PC1, y = PC2, color = regime)) +
  geom_point() +
  geom_text(aes(label = name), position = position_nudge(y = -2), show.legend = F, size = 3) +
  scale_color_manual(values = colors_default) +
  scale_x_continuous(expand = c(0.2, 0))

Correlation heatmap

pheatmap(
  cor(rld$matrix),
  annotation_col = as.data.frame(colData(dds)) %>% select(regime),
  color = brewer.pal(8, 'YlOrRd')
)

Wald test results

# DE analysis using Wald test
dds_full <- DESeq(dds)
colData(dds_full)
## DataFrame with 6 rows and 4 columns
##             experimental_class_type                   regime         treatment        sizeFactor
##                            <factor>                 <factor>       <character>         <numeric>
## SRR13535276                       A in space without gravity without nanoceria 0.959198770169552
## SRR13535278                       A in space without gravity without nanoceria  1.35899935691366
## SRR13535280                       A in space without gravity without nanoceria   1.0855420138387
## SRR13535300                       E                  on land without nanoceria  1.46247029781617
## SRR13535304                       E                  on land without nanoceria 0.585344531806422
## SRR13535302                       E                  on land without nanoceria 0.779070987419604
# Wald test results
res <- results(
  dds_full,
  contrast = c('experimental_class_type', condition, control),
  alpha = pval_cutoff
)
res
## log2 fold change (MLE): experimental_class_type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 13740 rows and 6 columns
##                            baseMean      log2FoldChange             lfcSE                stat            pvalue              padj
##                           <numeric>           <numeric>         <numeric>           <numeric>         <numeric>         <numeric>
## ENSMUSG00000025900 4.84109070941056   -4.90151517677601  1.95148160264003    -2.5116891546121 0.012015487358361                NA
## ENSMUSG00000098104 3.91151128129362   0.771163341044934  1.09550617521361    0.70393335838072  0.48147427609787                NA
## ENSMUSG00000033845 107.326663371825 -0.0961865427489715 0.427230746687796  -0.225139560985907 0.821870705674161 0.937911922006377
## ENSMUSG00000102275 2.24476039319007  -0.596925186764612  1.46236685638054  -0.408191134912648  0.68313335607389                NA
## ENSMUSG00000025903   97.17198870624 0.00216827591802481 0.483685073110851 0.00448282578595906 0.996423234496235  0.99885741697269
## ...                             ...                 ...               ...                 ...               ...               ...
## ENSMUSG00000095562 12.2586827221942   0.888255088892857 0.981058162334407   0.905405125807499 0.365250801219668 0.691617637139739
## ENSMUSG00000051412 486.050762713583   0.151847711961438 0.801785454726041   0.189386962642422 0.849789541872749 0.949108489673223
## ENSMUSG00000061654 1.66824740534976    1.42110993020852  2.48241085052721   0.572471688119922 0.567002461092904                NA
## ENSMUSG00000079834 28.7730470784915   0.981993624881488 0.806178491386502    1.21808462440199 0.223191816143189  0.55818881538483
## ENSMUSG00000096768 189.598056887415   0.560812446185138 0.639782789616438   0.876566946293375 0.380721899128402 0.700452136885829
mcols(res)
## DataFrame with 6 rows and 2 columns
##                        type                                            description
##                 <character>                                            <character>
## baseMean       intermediate              mean of normalized counts for all samples
## log2FoldChange      results log2 fold change (MLE): experimental_class_type A vs E
## lfcSE               results         standard error: experimental class type A vs E
## stat                results         Wald statistic: experimental class type A vs E
## pvalue              results      Wald test p-value: experimental class type A vs E
## padj                results                                   BH adjusted p-values
summary(res)
## 
## out of 13740 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up)       : 281, 2%
## LFC < 0 (down)     : 161, 1.2%
## outliers [1]       : 140, 1%
## low counts [2]     : 2931, 21%
## (mean count < 7)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results

Summary details

# Upregulated genes (LFC > 0)
res_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res[which(is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 140 rows and 6 columns
##                            baseMean     log2FoldChange             lfcSE               stat    pvalue      padj
##                           <numeric>          <numeric>         <numeric>          <numeric> <numeric> <numeric>
## ENSMUSG00000067780 323.139940634934  -2.39912008057394  1.41451513533989  -1.69607240010017        NA        NA
## ENSMUSG00000025981  153.69296986888 -0.310013187098316   1.1441624763323 -0.270952066259057        NA        NA
## ENSMUSG00000038349 102.362030766044  -3.96981540846435  1.20132944845498  -3.30451851785527        NA        NA
## ENSMUSG00000026024 51.4161905875205  -3.54642501636351  1.24204846705579  -2.85530324333488        NA        NA
## ENSMUSG00000025964 241.469239526279  -6.34641039604854  1.35335622318313  -4.68938649509558        NA        NA
## ...                             ...                ...               ...                ...       ...       ...
## ENSMUSG00000061273 272.096404697694  -1.54539499209852 0.949684744766932  -1.62727157681972        NA        NA
## ENSMUSG00000067878   33.55498693322  -3.88755218488343  1.61206647250488  -2.41153342693296        NA        NA
## ENSMUSG00000031365 127.894334691376 -0.508058906044352   1.1038164590458 -0.460274805544707        NA        NA
## ENSMUSG00000043518 69.5692388393559  -9.72977422759859  3.90754646538913   -2.4899957847666        NA        NA
## ENSMUSG00000059493 126.564334158208  -1.49000313250006  2.16572761680368 -0.687991934414679        NA        NA
# Low counts (only padj is NA)
res[which(is.na(res$padj) & !is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 2931 rows and 6 columns
##                            baseMean     log2FoldChange            lfcSE               stat             pvalue      padj
##                           <numeric>          <numeric>        <numeric>          <numeric>          <numeric> <numeric>
## ENSMUSG00000025900 4.84109070941056  -4.90151517677601 1.95148160264003   -2.5116891546121  0.012015487358361        NA
## ENSMUSG00000098104 3.91151128129362  0.771163341044934 1.09550617521361   0.70393335838072   0.48147427609787        NA
## ENSMUSG00000102275 2.24476039319007 -0.596925186764612 1.46236685638054 -0.408191134912648   0.68313335607389        NA
## ENSMUSG00000102135 4.93915823537701 -0.322113491916497 1.06284098701961 -0.303068376032203  0.761837753719857        NA
## ENSMUSG00000098201 1.99278194747158 -0.884397871902459 1.69095966329663  -0.52301535695906  0.600963566452397        NA
## ...                             ...                ...              ...                ...                ...       ...
## ENSMUSG00000087340 2.04958386890956   1.27887463682576 1.68425236885798  0.759312951237179  0.447665371914488        NA
## ENSMUSG00000087201 2.68523259554908  -3.97622263635048 2.80146421948035   -1.4193372910856  0.155800705140243        NA
## ENSMUSG00000081137 1.63569255563917   3.96878632079059 2.17852213410522   1.82177920465365 0.0684884943144259        NA
## ENSMUSG00000035299 3.20643912563949   1.64699152491423 1.81493288563235  0.907466903020159  0.364159944000123        NA
## ENSMUSG00000061654 1.66824740534976   1.42110993020852 2.48241085052721  0.572471688119922  0.567002461092904        NA

Shrunken LFC results

plotMA(res)

# Shrunken LFC results
res_shrunken <- lfcShrink(
  dds_full,
  coef = str_c('experimental_class_type_', condition, '_vs_', control),
  type = 'apeglm'
)
res_shrunken
## log2 fold change (MAP): experimental class type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 13740 rows and 5 columns
##                            baseMean      log2FoldChange             lfcSE            pvalue              padj
##                           <numeric>           <numeric>         <numeric>         <numeric>         <numeric>
## ENSMUSG00000025900 4.84109070941056  -0.262536086779112 0.579636690384519 0.012015487358361 0.135910162079128
## ENSMUSG00000098104 3.91151128129362   0.125747399467366 0.451307444942956  0.48147427609787                NA
## ENSMUSG00000033845 107.326663371825 -0.0521107382770368 0.317451090530027 0.821870705674161 0.938100629316973
## ENSMUSG00000102275 2.24476039319007 -0.0546953612201723 0.452408551895452  0.68313335607389                NA
## ENSMUSG00000025903   97.17198870624 0.00188877264948008 0.336988591434286 0.996423234496235  0.99894913255571
## ...                             ...                 ...               ...               ...               ...
## ENSMUSG00000095562 12.2586827221942   0.172376735714119 0.461358833442547 0.365250801219668 0.695391998628502
## ENSMUSG00000051412 486.050762713583  0.0405263332031704 0.407228266723103 0.849789541872749 0.949488886694501
## ENSMUSG00000061654 1.66824740534976  0.0491091526965159  0.46630415878391 0.567002461092904                NA
## ENSMUSG00000079834 28.7730470784915    0.27573831483339 0.488714143219032 0.223191816143189 0.561603102094391
## ENSMUSG00000096768 189.598056887415    0.21017130924388 0.416029303919732 0.380721899128402 0.703820029191432
plotMA(res_shrunken)

mcols(res_shrunken)
## DataFrame with 5 rows and 2 columns
##                        type                                            description
##                 <character>                                            <character>
## baseMean       intermediate              mean of normalized counts for all samples
## log2FoldChange      results log2 fold change (MAP): experimental class type A vs E
## lfcSE               results           posterior SD: experimental class type A vs E
## pvalue              results      Wald test p-value: experimental class type A vs E
## padj                results                                   BH adjusted p-values
summary(res_shrunken, alpha = pval_cutoff)
## 
## out of 13740 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up)       : 267, 1.9%
## LFC < 0 (down)     : 153, 1.1%
## outliers [1]       : 140, 1%
## low counts [2]     : 2131, 16%
## (mean count < 4)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results

Summary details

# Upregulated genes (LFC > 0)
res_shrunken_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_shrunken_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res_shrunken[which(is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 140 rows and 5 columns
##                            baseMean      log2FoldChange             lfcSE    pvalue      padj
##                           <numeric>           <numeric>         <numeric> <numeric> <numeric>
## ENSMUSG00000067780 323.139940634934  -0.226037712360566 0.533345338710921        NA        NA
## ENSMUSG00000025981  153.69296986888 -0.0435990913852108  0.43743505283154        NA        NA
## ENSMUSG00000038349 102.362030766044   -3.02201867539643  1.50166560740759        NA        NA
## ENSMUSG00000026024 51.4161905875205  -0.587164753132586  1.28631406700579        NA        NA
## ENSMUSG00000025964 241.469239526279   -5.69002407691351  1.46262519920869        NA        NA
## ...                             ...                 ...               ...       ...       ...
## ENSMUSG00000061273 272.096404697694  -0.353414603160655 0.585397387264538        NA        NA
## ENSMUSG00000067878   33.55498693322  -0.248968488488792 0.566674178000861        NA        NA
## ENSMUSG00000031365 127.894334691376 -0.0770873301806486 0.440633405156159        NA        NA
## ENSMUSG00000043518 69.5692388393559 -0.0461192592333893 0.473531709643179        NA        NA
## ENSMUSG00000059493 126.564334158208 -0.0619432263051295 0.467317181207905        NA        NA
# Low counts (only padj is NA)
res_shrunken[which(is.na(res_shrunken$padj) & !is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 2131 rows and 5 columns
##                            baseMean      log2FoldChange             lfcSE             pvalue      padj
##                           <numeric>           <numeric>         <numeric>          <numeric> <numeric>
## ENSMUSG00000098104 3.91151128129362   0.125747399467366 0.451307444942956   0.48147427609787        NA
## ENSMUSG00000102275 2.24476039319007 -0.0546953612201723 0.452408551895452   0.68313335607389        NA
## ENSMUSG00000098201 1.99278194747158 -0.0636479809933553 0.459118891617694  0.600963566452397        NA
## ENSMUSG00000103903 3.38094901917005  0.0983880508368446  0.47234050734291  0.352678678375683        NA
## ENSMUSG00000079671 1.76089510609905 -0.0306950425211257  0.45347583020391  0.804064397033141        NA
## ...                             ...                 ...               ...                ...       ...
## ENSMUSG00000087340 2.04958386890956  0.0963680641553455  0.46637800013859  0.447665371914488        NA
## ENSMUSG00000087201 2.68523259554908 -0.0854355907959891 0.479345334235406  0.155800705140243        NA
## ENSMUSG00000081137 1.63569255563917   0.159570206757925 0.505307711762914 0.0684884943144259        NA
## ENSMUSG00000035299 3.20643912563949  0.0989044905444302 0.471570608715285  0.364159944000123        NA
## ENSMUSG00000061654 1.66824740534976  0.0491091526965159  0.46630415878391  0.567002461092904        NA

Visualizing results

Heatmaps

# Plot normalized counts (z-scores)
pheatmap(counts_sig_norm[2:7], 
         color = brewer.pal(8, 'YlOrRd'), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime),
         border_color = NA,
         fontsize = 10,
         scale = 'row',
         fontsize_row = 10, 
         height = 20)

# Plot log-transformed counts
pheatmap(counts_sig_log[2:7], 
         color = rev(brewer.pal(8, 'RdYlBu')), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime),
         border_color = NA,
         fontsize = 10,
         fontsize_row = 10, 
         height = 20)

# Plot log-transformed counts (top 24 DE genes)
pheatmap((counts_sig_log %>% filter(ensembl_gene_id %in% res_sig_df$ensembl_gene_id[1:24]))[2:7],
         color = rev(brewer.pal(8, 'RdYlBu')), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime), 
         fontsize = 10,
         fontsize_row = 10, 
         height = 20)

Volcano plots

# Unshrunken LFC
res_df %>% 
  mutate(
    sig_threshold = if_else(
      padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
      if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
      'non-DE'
    )
  ) %>% 
  filter(!is.na(sig_threshold)) %>% 
  ggplot() +
  geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
  scale_color_manual(values = c('blue', 'red', 'gray')) +
  xlab('log2 fold change') + 
  ylab('-log10 adjusted p-value')

# Shrunken LFC
res_shrunken_df %>% 
  mutate(
    sig_threshold = if_else(
      padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
      if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
      'non-DE'
    )
  ) %>% 
  filter(!is.na(sig_threshold)) %>% 
  ggplot() +
  geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
  scale_color_manual(values = c('blue', 'red', 'gray')) +
  xlab('log2 fold change') + 
  ylab('-log10 adjusted p-value')

GSEA (all)

Hallmark genesets

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

GSEA (DE)

Hallmark genesets

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

System Info

sessionInfo()
## R version 3.6.3 (2020-02-29)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Sierra 10.12.6
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
##  [1] grid      parallel  stats4    stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] VennDiagram_1.6.20          futile.logger_1.4.3         fgsea_1.12.0                Rcpp_1.0.3                  RColorBrewer_1.1-2          pheatmap_1.0.12             DESeq2_1.26.0               SummarizedExperiment_1.16.1 DelayedArray_0.12.3         BiocParallel_1.20.1         matrixStats_0.57.0          Biobase_2.46.0              GenomicRanges_1.38.0        GenomeInfoDb_1.22.1         IRanges_2.20.2              S4Vectors_0.24.4            BiocGenerics_0.32.0         scales_1.1.1                forcats_0.4.0               stringr_1.4.0               dplyr_1.0.2                 purrr_0.3.3                 readr_1.3.1                 tidyr_1.0.0                 tibble_3.1.0                ggplot2_3.3.3               tidyverse_1.2.1            
## 
## loaded via a namespace (and not attached):
##  [1] colorspace_1.4-1       ellipsis_0.3.0         htmlTable_1.13.3       XVector_0.26.0         base64enc_0.1-3        rstudioapi_0.10        farver_2.1.0           bit64_0.9-7            mvtnorm_1.1-1          apeglm_1.8.0           AnnotationDbi_1.48.0   fansi_0.4.0            lubridate_1.7.4        xml2_1.2.2             splines_3.6.3          geneplotter_1.64.0     knitr_1.25             Formula_1.2-3          jsonlite_1.6           broom_0.7.5            annotate_1.64.0        cluster_2.1.0          png_0.1-7              compiler_3.6.3         httr_1.4.1             backports_1.1.5        assertthat_0.2.1       Matrix_1.2-18          cli_1.1.0              formatR_1.7            acepack_1.4.1          htmltools_0.5.1.1      tools_3.6.3            coda_0.19-3            gtable_0.3.0           glue_1.4.2             GenomeInfoDbData_1.2.2 fastmatch_1.1-0        bbmle_1.0.23.1         cellranger_1.1.0       jquerylib_0.1.3        vctrs_0.3.4            xfun_0.22              rvest_0.3.5            lifecycle_0.2.0        XML_3.99-0.3           MASS_7.3-51.5          zlibbioc_1.32.0        hms_0.5.2              lambda.r_1.2.4         yaml_2.2.0             memoise_1.1.0          gridExtra_2.3          emdbook_1.3.12         sass_0.3.1             bdsmatrix_1.3-4        rpart_4.1-15           latticeExtra_0.6-29    stringi_1.4.3          RSQLite_2.2.1          genefilter_1.68.0      checkmate_1.9.4        rlang_0.4.8            pkgconfig_2.0.3        bitops_1.0-6           evaluate_0.14          lattice_0.20-38        labeling_0.3           htmlwidgets_1.5.1      bit_1.1-15.1           tidyselect_1.1.0       plyr_1.8.4             magrittr_1.5           R6_2.4.0               generics_0.0.2         Hmisc_4.3-0            DBI_1.1.0              pillar_1.5.1           haven_2.2.0            foreign_0.8-75         withr_2.1.2            survival_3.1-8         RCurl_1.95-4.12        nnet_7.3-12            modelr_0.1.5           crayon_1.3.4           futile.options_1.0.1   utf8_1.1.4             rmarkdown_2.7          jpeg_0.1-8.1           locfit_1.5-9.4         readxl_1.3.1           data.table_1.13.6      blob_1.2.1             digest_0.6.27          xtable_1.8-4           numDeriv_2016.8-1.1    munsell_0.5.0          bslib_0.2.4